home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / Pascal / Snippets / PNL Libraries / Libraries / SpriteWorld / SpriteWorld files / Interfaces / SpriteLayer.p < prev    next >
Text File  |  1996-11-02  |  3KB  |  77 lines

  1. unit SpriteLayer;
  2.  
  3. interface
  4.  
  5.     uses
  6. {$IFC undefined THINK_Pascal}
  7.         Types, 
  8. {$ENDC}
  9.         SWCommonHeaders, Sprite;
  10.  
  11. {$PUSH}
  12. {$ALIGN MAC68K}
  13.  
  14. {/--------------------------------------------------------------------------------------}
  15. {    SpriteLayer.h}
  16. {}
  17. {    Portions are copyright: © 1991-94 Tony Myles, All rights reserved worldwide.}
  18. {}
  19. {    Description:    constants, structures, and prototypes for sprite layers}
  20. {/--------------------------------------------------------------------------------------}
  21.  
  22.  
  23. {/--------------------------------------------------------------------------------------}
  24. {    sprite layer type definitions}
  25. {/--------------------------------------------------------------------------------------}
  26.  
  27.  
  28.  
  29. {/--------------------------------------------------------------------------------------}
  30. {    sprite layer data structure}
  31. {/--------------------------------------------------------------------------------------}
  32.  
  33.     type
  34.         SpriteLayerPtr = ^SpriteLayerRec;
  35.         SpriteLayerHdl = ^SpriteLayerPtr;
  36.         SpriteLayerRec = record
  37.                 nextSpriteLayerP: SpriteLayerPtr;    { next sprite layer}
  38.                 prevSpriteLayerP: SpriteLayerPtr;    { previous sprite layer}
  39.  
  40.                 headSpriteP: SpritePtr;                { head of sprite linked list}
  41.                 tailSpriteP: SpritePtr;                { tail of sprite linked list}
  42.  
  43.                 userData: LongInt;                        { reserved for user}
  44.             end;
  45.  
  46. {/--------------------------------------------------------------------------------------}
  47. {    sprite layer function prototypes}
  48. {/--------------------------------------------------------------------------------------}
  49.  
  50.  
  51.     function SWCreateSpriteLayer (var spriteLayerP: SpriteLayerPtr): OSErr;
  52.     procedure SWDisposeSpriteLayer (spriteLayerP: SpriteLayerPtr);
  53.  
  54.     procedure SWAddSprite (spriteLayerP: SpriteLayerPtr; newSpriteP: SpritePtr);
  55.     procedure SWRemoveSprite (spriteLayerP: SpriteLayerPtr; oldSpriteP: SpritePtr);
  56.     procedure SWRemoveAllSpritesFromLayer (srcSpriteLayerP: SpriteLayerPtr);
  57.     procedure SWSwapSprite (spriteLayerP: SpriteLayerPtr; srcSpriteP: SpritePtr; dstSpriteP: SpritePtr);
  58.     procedure SWInsertSpriteAfterSprite (spriteLayerP: SpriteLayerPtr; newSpriteP: SpritePtr; dstSpriteP: SpritePtr);
  59.     procedure SWInsertSpriteBeforeSprite (spriteLayerP: SpriteLayerPtr; newSpriteP: SpritePtr; dstSpriteP: SpritePtr);
  60.     function SWGetNextSprite (spriteLayerP: SpriteLayerPtr; curSpriteP: SpritePtr): SpritePtr;
  61.  
  62.     procedure SWLockSpriteLayer (spriteLayerP: SpriteLayerPtr);
  63.     procedure SWUnlockSpriteLayer (spriteLayerP: SpriteLayerPtr);
  64.     procedure SWMoveSpriteLayer (spriteLayerP: SpriteLayerPtr);
  65.     procedure SWCollideSpriteLayer (spriteWorldP: SpriteWorldPtr; { SpriteWorldPtr - weird C forward declaration thing going on here }
  66.                                     srcSpriteLayerP: SpriteLayerPtr; dstSpriteLayerP: SpriteLayerPtr);
  67.  
  68.     function SWFindSpriteByPoint (spriteLayerP: SpriteLayerPtr; startSpriteP: SpritePtr; testPoint: Point): SpritePtr;
  69.  
  70. {$ALIGN RESET}
  71. {$POP}
  72.  
  73. {$IFC not undefined THINK_Pascal}
  74. implementation
  75. {$ENDC}
  76. end.
  77.